/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package BL;

import BO.Funcionario;
import DA.DAFuncionarios;
import DA.DARoles;
import DA.DAUnidadesDT;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Guigo
 */
public class BLMantenimiento {

    public ArrayList<String> listarUnidadesDT(String gerencia) throws SQLException {
        DAUnidadesDT bd = new DAUnidadesDT();
        ArrayList<String> retorno = new ArrayList<String>();
        ResultSet rs = bd.getUDT(gerencia);
        retorno.add("----");
        while (rs.next()) {
            retorno.add(rs.getString("Nombre"));
        }
        return retorno;
    }

    public ArrayList<String> listarRoles() throws SQLException {
        DARoles bd = new DARoles();
        ArrayList<String> retorno = new ArrayList<String>();
        ResultSet rs = bd.getAllRoles();
        retorno.add("----");
        while (rs.next()) {
            retorno.add(rs.getString("DescripcionRol"));
        }
        return retorno;
    }

    public ArrayList<String> listarSupervisores() throws SQLException {
        DAFuncionarios bd = new DAFuncionarios();
        ArrayList<String> retorno = new ArrayList<String>();
        ResultSet rs = bd.getAllSups();
        retorno.add("----");
        while (rs.next()) {
            retorno.add(rs.getString("Nombre") + " "
                    + rs.getString("PrimerApellido") + " "
                    + rs.getString("SegundoApellido") + " - "
                    + rs.getString("Cedula"));
        }

        return retorno;
    }

    public void agregarFuncionario(int cedula, String nombre, String apellido1,
            String apellido2, String gerencia, String uProg, String cedulaAutoriza, String nombreRol) throws SQLException {
        DAFuncionarios bd = new DAFuncionarios();
        DAUnidadesDT udt = new DAUnidadesDT();
        DARoles dar = new DARoles();
        int idAutoriza = Integer.parseInt(cedulaAutoriza);
        int idRol = dar.getRol(nombreRol);
        int unidadProg = udt.getUDT(gerencia, uProg);
        Funcionario f = new Funcionario(cedula, nombre, apellido1, apellido2, unidadProg, idAutoriza, idRol);
        bd.insertarFuncionario(f);
    }

    public ArrayList<String> listarGerencias() throws SQLException {
        DAUnidadesDT bd = new DAUnidadesDT();
        ArrayList<String> retorno = new ArrayList<String>();
        ResultSet rs = bd.getAllGerencias();
        retorno.add("----");
        while (rs.next()) {
            retorno.add(rs.getString("Gererencia"));
        }
        return retorno;
    }

    public void actualizarFuncionario(int cedula, String nombre, String apellido1,
            String apellido2, String gerencia, String uProg, String cedulaAutoriza, String nombreRol) throws SQLException {
        DAFuncionarios bd = new DAFuncionarios();
        DAUnidadesDT udt = new DAUnidadesDT();
        DARoles dar = new DARoles();
        int idAutoriza = Integer.parseInt(cedulaAutoriza);
        int idRol = dar.getRol(nombreRol);
        int unidadProg = udt.getUDT(gerencia, uProg);
        Funcionario f = new Funcionario(cedula, nombre, apellido1, apellido2, unidadProg, idAutoriza, idRol);
        bd.actualizarFuncionario(f);
    }
}
